var net = require('net');
var fs = require('fs');

var server = net.createServer();
var file = fs.createWriteStream('./message.txt');

server.on('connection', function(socket){


	// version-1
	// pause方法--暂停data事件触发，这时服务器把每一个客户端发送的数据暂存在一个单独的缓存区中
/*	// resume方法--恢复data事件触发，这时服务器将读取被缓存的该客户端数据
	socket.pause();
	setTimeout(function(){
		socket.resume();
		socket.pipe(file);
	},10000);

	socket.on('data', function(data){
		socket.pause();
		setTimeout(function(){
			socket.resume();
		},10000);
	});*/


	// version-2
	// 对客户端设置一个超时时间，如果客户端连接超过该时间仍未发送数据，表明客户端处于空闲状态，这时候读取缓存区中的数据
	// setTimeout方法--对客户端指定默认超时时间
	// timeout事件--客户端连接超时触发socket端口的timeout事件
/*	socket.setTimeout(10000);
	socket.pause();
	socket.pipe(file);
	socket.on('timeout', function(){
		socket.resume();
	});
	socket.on('data', function(data){
		socket.pause();
	})*/


	// socket.setTimeout(0); -- 取消客户端连接超时的指定
	socket.setTimeout(10000);
	socket.on('timeout', function(){
		console.log('client connection timeout');
		socket.setTimeout(0);
	});

});

server.listen(8880, 'localhost');